package com.xuanyuanxinyu.func.workmanager

import android.content.Context
import android.util.Log
import androidx.work.CoroutineWorker
import androidx.work.WorkerParameters
import androidx.work.rxjava3.RxWorker
import io.reactivex.rxjava3.core.Observable
import io.reactivex.rxjava3.core.Single
import kotlinx.coroutines.delay

class SleepCoroutineWorker(context : Context,parameters : WorkerParameters) : CoroutineWorker(context,parameters) {
    /**
     * 注意这里是个挂起函数
     */
    override suspend fun doWork() : Result {
        // 协程特有的方式
        delay(1000L) // milliseconds
        Log.d("1111","协程执行功能")
        
        
        return Result.success()
    }
}


class RxDownloadWorker(
    context : Context,
    params : WorkerParameters,
) : RxWorker(context,params) {
    override fun createWork() : Single<Result> {
        return Observable.range(0,100)
            // 可恢复数据
            //            .flatMap {
            //                download("https://www.example.com")
            //            }
            .toList()
            .map { Result.success() }
    }
}

